package com.biz.primus.model.order.coupon.vo.consume;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;

import java.io.Serializable;

/**
 * 付款明细
 *
 * @author Tiger Feng
 * @date 2017年11月16日
 */
@Data
public class SellPaymentVO implements Serializable {
    private static final long serialVersionUID = -4164166375197438349L;
    // 付款行号 --必须
    @JsonProperty("rowno")
    private String rowNo;
    // 2普通付款 3 扣回 --必须
    @JsonProperty("flag")
    private FlagEnum flag;
    // 付款大类 --必须
    @JsonProperty("paytype")
    private String payType;
    // 支付方式代码 --必须
    @JsonProperty("paycode")
    private String payCode;
    // 支付方式名称
    @JsonProperty("payname")
    private String payName;
    // 付款券种/积分种类
    @JsonProperty("coptype")
    private String copType;
    // 付款卡号
    @JsonProperty("payno")
    private String payNo;
    // 付款备注
    @JsonProperty("paymemo")
    private String payMemo;
    // 汇率
    @JsonProperty("rate")
    private Double rate;
    // 净付款(原币) --必须
    @JsonProperty("amount")
    private Double amount;
    // 折算RMB金额 --必须
    @JsonProperty("money")
    private Double money;
    // 溢余
    @JsonProperty("overage")
    private Double overage;
    // 券付款所属会员账号
    @JsonProperty("consumers_id")
    private String consumerId;
    // 券账户分组
    @JsonProperty("coupon_group")
    private String couponGroup;
    // 券付款用券档期
    @JsonProperty("coupon_event_scd")
    private String couponEventScd;
    // 券付款用券活动
    @JsonProperty("coupon_event_id")
    private Long couponEventId;
    // 券付款用券策略
    @JsonProperty("coupon_policy_id")
    private Long couponPolicyId;
    // 券互斥规则
    @JsonProperty("coupon_mutex")
    private String[] couponMutex;
    // 账户支付密码验证TOKEN
    @JsonProperty("coupon_pay_token")
    private String couponPayToken;
    // 券交易流水号
    @JsonProperty("coupon_trace_seqno")
    private Long couponTraceSeqNo;
    // 余额
    @JsonProperty("coupon_balance")
    private Double couponBalance;
    // 支付结余
    @JsonProperty("overpay")
    private Double overPay;
    // 券种是否现金券
    @JsonProperty("coupon_is_cash")
    private String couponIsCash;

    @AllArgsConstructor
    public enum FlagEnum{
        //2 普通付款
        //3 扣回
        COMMON_PAY("2"),
        DEDUCT("3"),
        ;

        private String value;
        @Override
        public String toString() {
            return value;
        }
    }
}
